package ar.com.larreta.comunes;

import java.beans.PropertyDescriptor;

public class Descriptores {
	
	public static Descriptores descriptores;
	
	private Descriptores(){}
	
	public static Descriptores getInstancia(){
		if (descriptores==null){
			descriptores=new Descriptores();
		}
		return descriptores;
	}
	
	public DescriptorDeObjeto getDescriptorDeObjeto(Object origen, Transformador transformador){
		DescriptorDeObjeto descriptorDeObjeto = new DescriptorDeObjeto(origen, transformador);
		if (descriptorDeObjeto.esCollection()){
			descriptorDeObjeto = new DescriptorDeObjetoCollection(origen, transformador);
		}
		return descriptorDeObjeto;
	}

	public DescriptorDePropiedad getDescriptorDePropiedad(Object origen, PropertyDescriptor descriptor, Transformador transformador){
		DescriptorDePropiedad descriptorDePropiedad = new DescriptorDePropiedad(origen, descriptor, transformador);
		if (descriptorDePropiedad.esCollection()){
			descriptorDePropiedad = new DescriptorDePropiedadCollection(origen, descriptor, transformador);
		}
		return descriptorDePropiedad;
	}
	
}
